﻿Imports System.Net.Mail
Imports System.Configuration
Partial Public Class Wfrm_Paso6
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then

            If Session("ptd_rut") Is Nothing Then
                Response.Redirect("../default.aspx")
            End If

            ViewState("prox_hora") = Session("prox_hora")
            ViewState("centro_medico") = Session("centro_medico")
            ViewState("profesional") = Session("profesional")
            ViewState("ptd_rut") = Session("ptd_rut")
            ViewState("agp_correl") = Session("agp_correl")
            ViewState("age_correl") = Session("age_correl")
            ViewState("fecha") = Session("fecha")
            ViewState("hora") = Session("hora")
            ViewState("especialidad_texto") = Session("especialidad_texto")
            ViewState("especialidad_codigo") = Session("especialidad_codigo")
            ViewState("rut_usuario") = Session("rut_usuario")

            ViewState("age_rut") = Session("age_rut")
            ViewState("age_paterno") = Session("age_paterno")
            ViewState("age_materno") = Session("age_materno")
            ViewState("age_nombres") = Session("age_nombres")
            ViewState("age_fono") = Session("age_fono")
            ViewState("cmn_codigo") = Session("cmn_codigo")
            ViewState("age_celular") = Session("age_celular")
            ViewState("pac_numficha") = Session("pac_numficha")
            ViewState("isa_codigo") = Session("isa_codigo")
            ViewState("pac_correl") = Session("pac_correl")
            ViewState("mail") = Session("mail")
            ViewState("clave") = Session("clave")

            lbl_profesional.Text = ViewState("profesional")
            lbl_fecha_reserva.Text = ViewState("fecha")
            lbl_hora_reserva.Text = ViewState("hora")
            lbl_especialidad.Text = ViewState("especialidad_texto")
            lbl_paciente.Text = ViewState("age_nombres").ToString.Trim & " " & ViewState("age_paterno").ToString.Trim & " " & ViewState("age_materno").ToString.Trim




        End If
    End Sub
 
    Sub Reservar()
        '       SP_AME_RESERVAR]
        '@upr_rut char(10),
        '@ptd_rut char(10),
        '@agp_correl numeric(2,0),
        '@age_correl numeric(10,0),
        '@usw_apepat varchar(50),
        '@usw_apemat varchar(50),
        '@usw_nombres varchar(100),
        '@usw_fono varchar(100),
        '@cmn_codigo numeric(4,0)


        Dim exec As New DotNetDal.SQLPersistence(True, "cnn", DotNetDal.SQLPersistence.Provider.SQLCLIENT)
        Dim rp As New DotNetResponse.SQLPersistence
        rp.StoredProcedure = "SP_AME_RESERVAR"
        rp.AddParametro(ViewState("age_rut"))
        rp.AddParametro(ViewState("ptd_rut"))
        rp.AddParametro(ViewState("agp_correl"))
        rp.AddParametro(ViewState("age_correl"))
        rp.AddParametro(ViewState("age_paterno"))
        rp.AddParametro(ViewState("age_materno"))
        rp.AddParametro(ViewState("age_nombres"))
        rp.AddParametro(ViewState("age_fono"))
        rp.AddParametro(ViewState("cmn_codigo"))

        exec.ExecuteDataTable(rp)
        exec.Commit()
        If Not rp.Errores Then
            If rp.DtTable.Rows(0).Item(0) = 1 Then
                'Se guardó correctamente
                pnl_mensaje.Visible = True
                pnl_mensaje.UpdateAfterCallBack = True
                Me.lbl_mensaje.Text = "Se ha registrado la hora correctamente"

                btn_confirmar.Visible = False
                btn_confirmar.UpdateAfterCallBack = True

                Session.Abandon()


            Else
                'Hora ya ha sido tomada
                pnl_mensaje.Visible = True
                pnl_mensaje.UpdateAfterCallBack = True
                Me.lbl_mensaje.Text = "La hora que intenta tomar, ya no se encuentra disponible"
            End If

            btn_confirmar.Enabled = False
            btn_confirmar.UpdateAfterCallBack = True

        End If

        If rp.Errores Then
            'mostrar mensaje de error
            pnl_mensaje.Visible = True
            pnl_mensaje.UpdateAfterCallBack = True
            Me.lbl_mensaje.Text = rp.MensajeError
        Else
            SendMail(rp, ViewState("clave"), ViewState("mail"))
        End If


    End Sub


    Protected Sub btnGrabar0_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnGrabar0.Click
        Response.Redirect("../Default.aspx", True)

    End Sub

    Sub SendMail(ByRef rp As DotNetResponse.SQLPersistence, ByVal clave As String, ByVal destinatario As String)
        Try
            Dim Mail As MailMessage
            Dim SmtpServer As New SmtpClient()
            SmtpServer.Credentials = New Net.NetworkCredential(ConfigurationManager.AppSettings("usuario_envio_clave_mail"), ConfigurationManager.AppSettings("clave_envio_clave_email")) 'WebConfig
            'SmtpServer.Port = 25
            SmtpServer.Host = ConfigurationManager.AppSettings("servidor_envio_clave_mail")
            'SmtpServer.EnableSsl = True
            Mail = New MailMessage()
            Try
                Mail.From = New MailAddress(ConfigurationManager.AppSettings("usuario_envio_clave_mail"), ConfigurationManager.AppSettings("usuario_envio_clave_mail"), System.Text.Encoding.UTF8) 'WebConfig     
                Mail.To.Add(destinatario)
                Mail.To.Add(ConfigurationManager.AppSettings("examen_email_callcenter_destino"))
                'Mail.Subject = ConfigurationManager.AppSettings("body_envio_clave_mail")
                'Mail.Body = ConfigurationManager.AppSettings("body_envio_clave_mail") & clave

                Mail.Subject = ConfigurationManager.AppSettings("reserva_hora")
                'Mail.Body = "Su Hora De Reserva Es: " & Session("prox_hora") & vbCrLf & vbCrLf & "Medico: " & Session("profesional") & vbCrLf & vbCrLf & "Especialidad: " & Session("especialidad_texto") & vbCrLf & vbCrLf & "Centro Medico: " & Session("centro_medico")
                Mail.Body = "Se ha confirmado su hora, los datos de su reserva son los siguientes: " & vbCrLf & vbCrLf & "Medico: " & Session("profesional") & vbCrLf & vbCrLf & "Hora De Reserva: " & Session("prox_hora") & vbCrLf & vbCrLf & "Especialidad: " & Session("especialidad_texto") & vbCrLf & vbCrLf & "Centro Medico: " & Session("centro_medico")

                SmtpServer.Send(Mail)
            Catch ex As Exception
                rp.Errores = True
                rp.MensajeError = ex.Message
            End Try

        Catch ex As Exception
            rp.Errores = True
            rp.MensajeError = ex.Message
        End Try
    End Sub


    Protected Sub btn_confirmar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btn_confirmar.Click
        If Session("ptd_rut") Is Nothing Then
            Response.Redirect("../default.aspx")
        End If
        Reservar()
    End Sub
End Class